var md5 = require('md5')
const crypto = require('crypto')

/**
 * @description MD5 加密
 * @param {*} val 元素数据
 * @param {*} solt 盐值
 * @returns {promise<string>}(加密后的数据)
 */
module.exports.MD5 = function (val, solt) {
  return new Promise((resolve, reject) => {
    var passSolt = md5(md5(val) + solt)
    resolve(passSolt)
  })
}

/**
 * @description 生成随机盐值
 * @param {number} length 长度
 * @param {string} code 编码方式
 * @returns 盐值字符串
 */
module.exports.genSalt = function (length = 16, code = 'hex') {
  // 生成随机的盐值
  const salt = crypto.randomBytes(length).toString(code)
  return salt
}
